<?php
declare (strict_types = 1);
namespace app\admin\validate\market\advert;

use think\Validate;

/**
 * 广告图配置验证
 */
class AdvertLink extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名'    =>    ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'advert_id' => 'require',
        'image'     => 'require|gt:0',
        'links'     => 'checkLinks',

    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名'    =>    '错误信息'
     *
     * @var array
     */
    protected $message = [
        'advert_id' => '添加失败',
        'image'     => '请上传广告图',
    ];

    /**
     * 验证场景
     */
    protected $scene = [
        'create' => ['advert_id', 'image', 'links'],
        'edit'   => ['id', 'advert_id', 'image', 'links'],
    ];

    protected function checkLinks($links, $rule, $data)
    {
        // 不跳转
        if ($links['link_type'] == 0) {
            return true;
        }

        // 跳转至内容
        if ($links['link_type'] == 1 && (!$links['link_data_type'] || !$links['link_data_id'])) {
            return '请选择跳转内容';
        }

        // 跳转至内容
        if ($links['link_type'] == 2 && !$links['link_href']) {
            return '请填写跳转链接';
        }

        return true;

    }
}
